import Vue from 'vue'
import App from './App'

import axios from 'axios'

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
    el: '#app',
    render: h => h(App)
})

// axios(config) config是对象，axios(config)返回的是一个Promise对象，当数据返回成功时自动调用内部的resolve对象
// axios({
//     // 首页接口
//     url: 'http://123.207.32.32:8000/home/multidata',
//     method: 'get',
// }).then(res => {
//     console.log(res);
// })

// // axios.get('http://123.207.32.32:8000/home/multidata').then(res => { console.log(res); })
// // axios.post('http://123.207.32.32:8000/home/multidata').then(res => { console.log(res); })

// axios({
//     // url: 'http://152.136.185.210:7878/api/m5/home/data?type=pop&page=1',
//     url: 'http://152.136.185.210:7878/api/m5/home/data',
//     method: 'get',
//     // params是专门针对get请求的参数拼接
//     params: {
//         type: 'pop',
//         page: 1
//     }
// }).then(res => {
//     console.log(res);
// })

// 2. axios发送并发请求
// axios.all([axios({
//         url: 'http://123.207.32.32:8000/home/multidata',
//     }), axios({
//         url: 'http://152.136.185.210:7878/api/m5/home/data',
//         params: {
//             type: 'sell',
//             page: 5
//         },
//     })]).then(axios.spread((res1, res2) => {
//         console.log(res1);
//         console.log(res2);
//     }))
// .then(results => {
//     console.log(results);
//     console.log(results[0]);
//     console.log(results[1]);
// })

// 3. 使用全局的axios和对应的配置进行网络请求
// axios.defaults.baseURL = 'http://123.207.32.32:8000'
// axios.defaults.timeout = 5000

// axios.all([axios({
//     url: '/home/multidata',
// }), axios({
//     url: '/home/data',
//     params: {
//         type: 'sell',
//         page: 5
//     },
// })]).then(axios.spread((res1, res2) => {
//     console.log(res1);
//     console.log(res2);
// }))

// 4. 创建对应的axios的实例
// const instance1 = axios.create({
//     baseURL: 'http://123.207.32.32:8000',
//     timeout: 5000,
// })

// instance1({
//     url: '/home/multidata',
// }).then(res => { console.log(res); })

// instance1({
//     url: '/home/data',
//     params: {
//         type: 'pop',
//         page: 1
//     }
// }).then(res => { console.log(res); })

// const instance2 = axios.create({
//     baseURL: 'http://152.136.185.210:7878/api/m5',
// })

// instance2({
//     url: '/home/data',
//     params: {
//         type: 'sell',
//         page: 5,
//     }
// }).then(res => { console.log(res); })

// 5. 封装request模块
import { request } from './network/request'

// 第一种回调
// request({
//     url: '/home/multidata'
// }, res => {
//     console.log(res);
// }), err => {
//     console.log(err);
// }

// 第二种回调
// request({
//     baseConfig: '/home/multidata',
//     success: res => { console.log(res); },
//     failure: err => { console.log(err); }
// })

// 第三/四种：联合promise函数
request({
    url: '/home/multidata'
}).then(res => {
    console.log(res);
}).catch(err => {
    console.log(err);
})